home *** CD-ROM | disk | FTP | other *** search
- +----------------------------------------------------+
- | TV∙RCE ROZVRH┘ 2.3 (c) PAVEL JAROè 2003-04 |
- +----------------------------------------------------+
- | Autor: PAVEL JAROè / FUNKYSHiT |
- | Web: http://funkyshit.webpark.cz/ |
- | E-mail: jaros.pavel@centrum.cz |
- +----------------------------------------------------+
-
- +----------------------------------------------------+
- | OBSAH |
- +----------------------------------------------------+
-
- I. Nßroky na HW a SW
- II. Instalace
- III. Co je Tv∙rce rozvrh∙
- IV. Ovlßdßnφ programu
- 1) Zadßnφ vstupnφch dat
- 2) Ulo₧enφ vstupnφch dat
- 3) Ovlßdßnφ genetickΘho algoritmu
- 4) Ulo₧enφ v²stupnφch dat
- 5) Popis parametr∙ GA
- V. Odpov∞dnost za vady
-
- +----------------------------------------------------+
- | I. N┴ROKY NA HW A SW |
- +----------------------------------------------------+
-
- SystΘm s WIN95 a vyÜÜφ.
-
- +----------------------------------------------------+
- | II. INSTALACE |
- +----------------------------------------------------+
-
- Spus¥te instalaΦnφ soubor a postupujte podle in-
- strukcφ instalaΦnφho programu.
-
- +----------------------------------------------------+
- | III. CO JE TV┘RCE ROZVRH┘ |
- +----------------------------------------------------+
-
- Program Tv∙rce rozvrh∙ umo₧≥uje pln∞ automatickou
- tvorbu Ükolnφch rozvrh∙ s vyu₧itφm techniky gene-
- tick²ch algoritm∙.
-
- Program sestavuje Ükolnφ rozvrhy podle zadan²ch
- omezujφcφch podmφnek, kter²mi jsou:
-
- 1) Silnß omezenφ (povinnß)
- -----------------------
- - pouze jedinΘ: ₧ßdn² uΦitel nesmφ uΦit
- v danΘm Φase vφce ne₧ jeden p°edm∞t.
-
- Je nutnΘ, aby v p°φpustnΘm °eÜenφ rozvrhovacφ ·lohy
- nebyl ₧ßdn² t∞₧k² konflikt, tzn. aby vygenerovanΘ
- rozvrhy spl≥ovaly silnß omezenφ.
-
- 2) Slabß omezenφ (volitelnß)
- -------------------------
- - maximßlnφ p°φpustnß mezera v rozvrhu,
- - maximßlnφ p°φpustn² poΦet hodin denn∞,
- - minimßlnφ p°φpustn² poΦet hodin denn∞.
-
- Napln∞nφ vÜech slab²ch omezenφ nenφ pro p°φpustnΘ
- °eÜenφ nezbytn∞ nutnΘ, p°esto p°i tvorb∞ rozvrh∙
- hrajφ d∙le₧itou roli. Prßv∞ slabß omezenφ urΦujφ
- do jakΘ mφry budou vygenerovanΘ rozvrhy pou₧itelnΘ
- v praxi. V Φφm v∞tÜφ mφ°e jsou omezujφcφ podmφnky
- (silnΘ i slabΘ) spln∞ny, tφm je °eÜenφ kvalitn∞jÜφ.
-
- Program Tv∙rce rozvrh∙ pou₧φvß pro nalezenφ opti-
- mßlnφho °eÜenφ techniku genetick²ch algoritm∙ (GA),
- kterß je zalo₧ena na p°irozenΘm v²b∞ru, repro-
- dukΦnφm procesu a mutaci genetickΘ informace.
- GA pracuje s populacφ jedinc∙, kterß se vyvφjφ
- v Φase. Ka₧d² jedinec v populaci odpovφdß jednomu
- z mo₧n²ch °eÜenφ ·lohy (rozvrh∙). V pr∙b∞hu gene-
- racφ (Φasu) dochßzφ k nßr∙stu kvality populace
- jedinc∙. Toho je dosa₧eno dosa₧eno aplikovßnφm
- selekce, k°φ₧enφ a mutace. Selekce provßdφ v²b∞r
- jedinc∙, kte°φ se podφlφ na reprodukci. ╚φm je je-
- dinec kvalitn∞jÜφ, tφm v∞tÜφ mß Üanci, ₧e bude vy-
- brßn. K°φ₧enφ zajiÜ¥uje v²m∞nu genetickΘho materiß-
- lu mezi dv∞ma jedinci - rodiΦi. Potomek zφskß od
- ka₧dΘho rodiΦe pouze Φßst genetickΘ inforamce. A
- koneΦn∞ mutace udr₧uje variabilitu v populaci, aby
- proces hledßnφ °eÜenφ neuvφzl v lokßlnφm optimu.
- Program Tv∙rce rozvrh∙ navφc pou₧φvß tvz. opravnou
- mutaci, kterß v²znamn∞ napomßhß p°i odstra≥ovßnφ
- konflikt∙ v rozvrhu. Vφce inforamcφ o genetick²ch
- algoritmech m∙₧ete najφt nap°. na:
- http://alife.fei.tuke.sk/projekty/gen_alg/.
-
- V²stupem programu jsou jednak rozvrhy hodin pro
- jednotlivΘ t°φdy, jednak rozvrhy uΦitel∙.
-
- +----------------------------------------------------+
- | IV. OVL┴D┴N═ PROGRAMU |
- +----------------------------------------------------+
-
- 1) Zadßnφ vstupnφch dat
- --------------------
-
- Prvnφm krokem je zadßnφ vstupnφch dat. To je mo₧nΘ
- provΘst bu∩ s pomocφ pr∙vodce nebo ·pravou ji₧
- existujφcφch dat.
-
- Pr∙vodce pro zadßvßnφ dat m∙₧ete spustit bu∩ z na-
- bφdky Soubor p°φkazem Zadat data... nebo tlaΦφtkem
- s ikonou rozvrhu na panelu nßstroj∙ (CTRL+Z).
-
- Nejprve budete vyzvßni k zadßnφ jmΘna souboru se
- vstupnφmi daty (takΘ m∙₧ete p°epsat ji₧ existujφcφ
- soubor). DalÜφm krokem je napln∞nφ seznamu vyuΦujφ-
- cφch. Na nßsledujφcφm formulß°i zadßte p°edm∞ty
- pro jednotlivΘ t°φdy. U ka₧dΘho p°edm∞tu je t°eba
- vyplnit jeho nßzev, poΦet hodin a zvolit vyuΦujφcφ-
- ho ze seznamu vyuΦujφcφch. Na tomto formulß°i je
- takΘ mo₧nΘ zadat p°edm∞ty s pevn∞ stanov²m dnem
- a hodinou v²uky. Na prvnφ zßlo₧ce poslednφho for-
- mulß°e pr∙vodce nastavφte chovßnφ genetickΘho algo-
- ritmu (poΦet generacφ, poΦet jedinc∙ v generaci,
- pravd∞podobnosti k°φ₧enφ a mutace atd. - viz
- Popis parametr∙ GA) a na druhΘ zßlo₧ce zadßte
- data t²kajφcφ se rozvrhu (poΦet hodin denn∞, poΦet
- dn∙ v t²dnu, omezujφcφ podmφnky).
-
- DalÜφ mo₧nostφ je ·prava ji₧ existujφcφch dat.
- Ke vstupnφm dat∙m lze p°istupovat p°es nabφdku Data.
- Formulß° s nastavenφm genetickΘho algoritmu zobra-
- zφte p°φkazem Nastavenφ GA... z nabφdky GA
- (klßvesovΘ zkratky F5 - F8).
-
-
- 2) Ulo₧enφ vstupnφch dat
- ---------------------
-
- Vstupnφ data je mo₧nΘ uklßdat (CTRL+U) a naΦφtat
- (CTRL+N). K tomu slou₧φ bu∩ p°φkazy v nabφdce soubor
- nebo tlaΦφtka na panelu nßstroj∙. Vstupnφ data je
- mo₧nΘ uklßdat ve dvou r∙zn²ch formßtech:
-
- a) Formßt DAT - data v tomto souboru, nelze upra-
- vovat pomocφ textovΘho editoru (jako je nap°.
- Poznßmkov² blok - Notepad). Zm∞ny je mo₧nΘ pro-
- vßd∞t pouze v programu Tv∙rce rozvrh∙. V²hodou
- tohoto formßtu je vysokß rychlost p°i uklßdßnφ
- a naΦφtßnφ vstupnφch dat.
-
- b) Formßt INI - data lze m∞nit jak v programu, tak
- pomocφ textovΘho editoru, ovÜem za cenu pomalej-
- Üφho uklßdßnφ a naΦφtßnφ (co₧ se projevφ zvlßÜt∞
- pokud soubor obsahuje velkΘ mno₧stvφ dat).
-
- Mezi t∞mito formßty je mo₧nΘ provßd∞t konverze, tzn.
- naΦφst vstupnφ data ve formßtu DAT a ulo₧it je do sou-
- boru typu INI nebo naopak.
-
-
- 3) Ovlßdßnφ genetickΘho algoritmu
- ------------------------------
-
- Pokud mß program k dispozici vÜechna pot°ebnß
- vstupnφ data je mo₧nΘ zahßjit genetick² algoritmus.
- K ovlßdßnφ genetickΘho algoritmu je mo₧nΘ pou₧φt
- bu∩ p°φkazy v nabφdce GA nebo tlaΦφtka Start/Pauza/
- Stop na panelu nßstroj∙ (klßvesovΘ zkratky F2 - F4).
-
- Genetick² algoritmus zahßjφte p°φkazem Start, jeho
- b∞h m∙₧ete kdykoliv p°eruÜit p°φkazem Pauza a nechat
- si vypsat dosud nejlepÜφ nalezenΘ °eÜenφ. ╚innost
- algoritmu lze potΘ znovu obnovit p°φkazem Start.
- Algoritmus ukonΦφte p°φkazem Stop.
-
- Pokud je nalezeno °eÜenφ, kterΘ spl≥uje vÜechny
- omezujφcφ podmφnky, je genetick² algoritmus ukonΦen
- automaticky.
-
- 4) Ulo₧enφ v²stupnφch dat
- ----------------------
-
- NalezenΘ °eÜenφ je mo₧nΘ ulo₧it (CTRL+S) do texto-
- vΘho souboru a odtud znovu naΦφst (CTRl+R).
- V²stupnφ data se uklßdajφ jako text odd∞len² st°ed-
- nφky, co₧ je formßt vhodn² pro dalÜφ zpracovßnφ v
- tabulkovΘm procesoru (nap°. MS Excel).
-
- 5) Popis parametr∙ GA
- ------------------
- Pro efektivnφ Φinnost GA je klφΦovΘ jeho sprßvnΘ
- nastavenφ. Uvßdφm struΦn² popis jednotliv²ch para-
- metr∙ GA, kter² by vßm to m∞l pokud mo₧no usnadnit.
-
- a) P°eruÜit p°i stagnaci trvajφcφ po XX generacφ
- - v p°φpad∞, ₧e nebylo po urΦit² poΦet generacφ
- nalezeno ₧ßdnΘ kvalitn∞jÜφ °eÜenφ, dojde k auto-
- matickΘmu p°eruÜenφ GA. V p°φpad∞, ₧e proces
- hledßnφ °eÜenφ nikam nevede, je ukonΦeno a zahßjφ
- se novΘ hledßnφ (viz parametr PoΦet nezßvisl²ch
- b∞h∙ GA). Pokud je parametr nastaven na 0, k p°e-
- ruÜenφ nedojde a b∞h GA je ukonΦen po nastavenΘm
- poΦtu generacφ.
-
- b) PoΦet nezßvisl²ch b∞h∙ GA - urΦuje poΦet opakovßnφ
- GA. ╪eÜenφm ulohy pak bude nejkvalitn∞jÜφ nalezen²
- rozvrh ze vÜech b∞h∙. Pokud je v n∞kterΘm b∞hu na-
- lezeno °eÜenφ bez konflikt∙, dojde k p°eruÜenφ GA
- a zb²vajφcφ b∞hy se ji₧ neprovedou.
-
- c) PoΦet generacφ - urΦuje poΦet iteracφ GA.
- V p°φpad∞, ₧e mßte nasataveno p°eruÜenφ p°i
- stagnaci, m∙₧e dojφt k ukonΦenφ b∞hu GA p°ed
- dosa₧enφm zvolenΘho poΦtu generacφ. TakΘ v p°φ-
- pad∞, ₧e je nalezeno °eÜenφ bez konflikt∙, dojde
- k p°eruÜenφ GA. DoporuΦuji nastavit vyÜÜφ poΦet
- generacφ (200 a vφce) a souΦasn∞ zapnout p°eru-
- Üenφ p°i stagnaci.
-
- d) PoΦet jedinc∙ - urΦuje poΦet jedinc∙ v populaci.
- ╚φm vyÜÜφ poΦet jedinc∙ nastavφte, tφm ÜφrÜφ
- prostor (mo₧n²ch °eÜenφ) je prohledßvßn a tφm
- vyÜÜφ je pravd∞pobnost nalezenφ optimßlnφho
- °eÜenφ. Um∞rn∞ tomu se vÜak sni₧uje i rychlost
- programu. Dobr²ch v²sledk∙ lze dosßhnout zhruba
- ji₧ od 100 jedinc∙.
-
- e) PoΦet elitnφch jedinc∙ - urΦuje poΦet nejkvalit-
- n∞jÜφch jedinc∙, kte°φ automaticky postupujφ do
- dalÜφ generace (beze zm∞n), ani₧ by proÜli se-
- lekcφ, k°φ₧enφm a mutacφ.
- Standardn∞: 1 - 5 jedinc∙.
-
- f) Pravd∞podobnost k°φ₧enφ - urΦuje s jakou pravd∞-
- pobnostφ mß dochßzet ke k°φ₧enφ.
- Stanadardn∞: 50 - 75 %.
-
- g) Hornφ a dolnφ pravd∞podobnost "opravnΘ" mutace -
- v p°φpad∞ ·plnΘho GA je opravnß mutace aplikovßna
- dynamicky: z poΦßtku s vyÜÜφ pravd∞pobnostφ, poz-
- d∞ji s ni₧Üφ. To lze interpretovat tak, ₧e v poΦß-
- teΦnφch generacφch je preferovßna v∞tÜφ Üφ°e pro-
- hledßvanΘho prostoru (mo₧n²ch °eÜenφ) a v pozd∞j-
- Üφch generacφch jsou spφÜe prohledßvßna blφzkß
- okolφ nejkvalitn∞jÜφch °eÜenφ.
- Stanadardn∞: 100 % a 25 %.
-
- h) Pravd∞podobnost mutace - pevn∞ definovanΘ p°edm∞ty
- - stanovuje s jakou pravd∞podobnostφ mß dochßzet k
- opravnΘ mutaci na dnech v rozvrhu, ve kter²ch jsou
- pevn∞ definovanΘ p°edm∞ty (s pevn∞ stanovenou do-
- bou v²uky). Stanadardn∞: 50 - 75 %.
-
-
- i) Pravd∞podobnost "klasickΘ" mutace - urΦuje s ja-
- kou pravd∞pobnostφ mß dochßzet ke klasickΘ mutaci.
- Stanadardn∞: 1 - 5 %.
-
-
- +----------------------------------------------------+
- | V. ODPOV╠DNOST ZA VADY |
- +----------------------------------------------------+
-
- Autor nenφ zodpov∞dn² za ztrßtu nebo zniΦenφ dat,
- uÜl² zisk nebo jak²koliv jin² druh ztrßty spojen²
- s u₧φvßnφm tohoto programu.
-
- +----------------------------------------------------+
- | Pavel JaroÜ, 21. 8. 2004 |
- +----------------------------------------------------+